<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //apply方法来自Function.prototype对象，所有函数都将继承该方法
        console.dir(Function)
        function f1(n1,n2){
            console.log("这是一个函数");
            console.log(this);
            console.log(n1,n2);
        }
        //1、Function中的apply可以调用函数
        f1.apply();
        //2、apply可以指定调用的上下文，简单说就是指定this，不指定就是window
        var obj={name:"foo"};
        f1.apply(obj);
        //3、指定参数，以数组的形式指定参数
        f1.apply(obj,[1,2]);

        //数组
        console.dir(Array);
        //使用apply来调用数组中的排序方法
        var array=Array.prototype.sort.apply([3,2,1]);
        console.log(array);
        
    </script>
</body>
</html>